perm filename MIX999[MIX,SYS] blob
sn#020789 filedate 1972-02-29 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 These tables are used to convert ASCII-coded characters
00005 00003 INIT: MOVE P, [IOWD 40, PDL]
00006 00004 BEGIN NEWS
00010 00005 XLIST LITERALS FOLLOW
00011 ENDMK
⊗;
COMMENT ⊗ These tables are used to convert ASCII-coded characters
to MIX-coded characters and vice-versa.
"!" is used to indicate a character which cannot be converted.
"!" will be represented in MIX-code by 56.
⊗
ASCMIX:
REPEAT 40 {=56}
=00 ; <SPACE>
=56
=56
=56
=49 ; $
=56
=56
=55 ; '
=42 ; (
=43 ; )
=46 ; *
=44 ; +
=41 ; ,
=45 ; -
=40 ; .
=47 ; /
=30 ; 0
=31 ; 1
=32 ; 2
=33 ; 3
=34 ; 4
=35 ; 5
=36 ; 6
=37 ; 7
=38 ; 8
=39 ; 9
=54 ; :
=53 ; ;
=50 ; <
=48 ; =
=51 ; >
=56
=52 ; @
=01 ; A
=02 ; B
=03 ; C
=04 ; D
=05 ; E
=06 ; F
=07 ; G
=08 ; H
=09 ; I
=11 ; J
=12 ; K
=13 ; L
=14 ; M
=15 ; N
=16 ; O
=17 ; P
=18 ; Q
=19 ; R
=22 ; S
=23 ; T
=24 ; U
=25 ; V
=26 ; W
=27 ; X
=28 ; Y
=29 ; Z
=56
=56
=56
=56
=56
=56
=01 ; a
=02 ; b
=03 ; c
=04 ; d
=05 ; e
=06 ; f
=07 ; g
=08 ; h
=09 ; i
=11 ; j
=12 ; k
=13 ; l
=14 ; m
=15 ; n
=16 ; o
=17 ; p
=18 ; q
=19 ; r
=22 ; s
=23 ; t
=24 ; u
=25 ; v
=26 ; w
=27 ; x
=28 ; y
=29 ; z
=56
=56
=56
=56
=56
MIXASC:
" "
"A"
"B"
"C"
"D"
"E"
"F"
"G"
"H"
"I"
"!"
"J"
"K"
"L"
"M"
"N"
"O"
"P"
"Q"
"R"
"!"
"!"
"S"
"T"
"U"
"V"
"W"
"X"
"Y"
"Z"
"0"
"1"
"2"
"3"
"4"
"5"
"6"
"7"
"8"
"9"
"."
","
"("
")"
"+"
"-"
"*"
"/"
"="
"$"
"<"
">"
"@"
";"
":"
"'"
"!"
"!"
"!"
"!"
"!"
"!"
"!"
"!"
INIT: MOVE P, [IOWD 40, PDL]
PUSHJ P,QNEWS ;TYPE OUT ANY MESSAGES
MOVNI 10, 1
GETLIN 10
TLNN 10,420000 ;IS IT A DISPLAY OF SOME SORT
JRST NOTDPY
TLNE 10,400000
JRST ISIII ;IT'S A III
DPYPOS -150
DPYSIZ 4000+4
MOVEI PC,MC0000
PUSHJ P,REWRIT ;WRITE DD SCREEN
SETOM DDSW# ;INDICATE DD
JRST NOTDPY
ISIII: SETZM DDSW
DPYPOS -250
DPYSIZ 3000+4
UPGIOT DPYHED
NOTDPY: setzb 0, 1
setzb 2, 3
setzb 4, 5
setzb 6, 7
setzb 10, 11
setzb 12, 13
setzb 14, 15
MOVEI PC,MC0000 ;*RES* INITIALIZE PROGRAM COUNTER
jrst button
BEGIN NEWS
↑QNEWS: MOVEM 4,ACSV+4 ;SAVE REGISTERS 0-4
MOVEI 4,ACSV
BLT 4,ACSV+3
INIT 6,10 ;OPEN DISK IN IMAGE MODE
SIXBIT /DSK/
NWSBF
JRST QN3 ;NO SWEAT IF ERROR
HLLZS NWSLK+1 ;CLEAR OUT RIGHT HALF OF EXT
MOVE 0,[SIXBIT /MIXSYS/]
MOVEM 0,NWSLK+3 ;FIX UP PPN IN LOOKUP BLOCK
LOOKUP 6,NWSLK ;LOOK FOR FILE
JRST QN4 ;NO NEWS IS GOOD NEWS
;SEE IF HE REALLY WANTS TO READ THE NEWS
LDB 1,[POINT 11,NWSLK+2,23] ;GET TIME OF CREATION
IDIVI 1,=60
MOVE 0,DATE(1) ;GET HOUR
MOVEM 0,MSTIME
IDIVI 2,=10 ;GET MINUTES
ADDI 2,60
ADDI 3,60
DPB 2,[POINT 7,MSTIME+1,13]
DPB 3,[POINT 7,MSTIME+1,20]
LDB 1,[POINT 12,NWSLK+2,35] ;GET DATE OF CREATION
IDIVI 1,=31
MOVE 0,DATE+1(2) ;GET DAY OF WEEK
MOVEM 0,MSDATE
IDIVI 1,=12
MOVE 0,MONTH(2) ;GET MONTH
MOVEM 0,MSDATE+1
MOVE 0,YEAR(1) ;GET YEAR
MOVEM 0,MSDATE+2
OUTSTR MESSAG ;SEE IF HE WANTS THE NEWS
INCHRW 0 ;GET HIS ANSWER
CAIN 0,"Y" ;IS IT Y
JRST READIT
CAIE 0,"y" ;IS IT y
JRST QN4 ;NO
READIT: OUTSTR [ASCIZ /
/]
MOVE 0,[POINT 7,LINBUF] ;COLLECT A LINE AT A TIME
QN1: PUSHJ P,QIN ;GET A WORD
TRNN 3,1 ;IS IT A LINE NUMBER
JRST .+3 ;NO
PUSHJ P,QIN ;GET ANOTHER ONE
IBP 2 ;MOVE PAST INITIAL TAB
QN1B: ILDB 1,2 ;GET A CHAR
JUMPE 1,QN1 ;GO BACK IF OUT OF CHARS
IDPB 1,0 ;WRITE IT OUT
CAIE 1,12 ;IS THAT THE LF AT THE END OF THE LINE
JRST QN1B ;NO
MOVEI 1,0
IDPB 1,0 ;MAKE THE LINE AN ASCIZ STRING
OUTSTR LINBUF ;WRITE IT OUT
MOVE 0,[POINT 7,LINBUF]
JRST QN1 ;LOOK SOME MORE
QIN: SOSG NWSBF+2 ;SEE IF ANY MORE CHARS THIS BUFFER
IN 6, ;READ AGAIN
JRST .+4 ;ALL OK
STATZ 6,20000 ;CHECK FOR EOF
JRST QN1A ;EOF
JRST QN5 ;OTHER PROBLEMS
ILDB 3,NWSBF+1 ;PICK UP NEXT WORD
JUMPE 3,QIN ;IGNORE NULL WORDS
SETZ 4, ;ZERO OUT 4
MOVE 2,[POINT 7,3] ; SO THAT 2 POINTS TO ASCIZ IN 3
POPJ P,
QN1A: POP P,(P)
QN2: RELEAS 6,
INSKIP ;JUST IS CASE HE SAID ↑0
JFCL
OUTSTR [ASCIZ /
Type CR to start MIX/]
INCHWL 1 ;FIND LF
CAIE 1,12
JRST .-2
QN3: HRLZI 4,ACSV ;RESTORE REGS
BLT 4,4
POPJ P, ;RETURN
QN4: RELEAS 6, ;JUST RELEASE CHANNEL AND RETURN
JRST QN3
QN5: POP P,(P)
OUTSTR [ASCIZ /
DSK error in reading news/]
JRST QN2
NWSLK: SIXBIT /NEWS/
SIXBIT /MIX/
0
SIXBIT /MIXSYS/
NWSBF: BLOCK 3
ACSV: BLOCK 5
LINBUF: BLOCK 25
MESSAG: ASCII /Read the news as of /
MSTIME: ASCII / /
ASCII /:00 /
MSDATE: ASCII / /
ASCII / /
ASCII / /
ASCIZ /? /
BEND NEWS
XLIST ;LITERALS FOLLOW
LIT
LIST
END INIT